snippet cc
	/*${1:comment}*/
snippet fd
	/*=========================================================================       
	* 
	*		Filename: `expand("%:t")` 
	*		
	*	    Version:  1.0	
	*		Created:  `strftime("%Y-%m-%d %H:%M:%S")` 
	*		Description: ${1:} 
	*
	*       Author:  walter(朱瑜玮) (walterzywei@gmail.com)
	*       Company:  TaoMee.Inc, ShangHai.
	* 
	* ========================================================================= 
	*/ 
snippet ih
	#include "`expand('%:t:r')`.h"
snippet ihpp
	#include "`expand('%:t:r')`.hpp"
snippet ff 
	#ifndef `toupper(substitute(expand("%:t"),'\.','_',"g"))` 
	#define `toupper(substitute(expand("%:t"),'\.','_',"g"))`

	${1:/*code*/}

	#endif /*`toupper(substitute(expand("%:t"),'\.','_',"g"))`*/
snippet ch
	#include <sys/socket.h>   
	#include <sys/epoll.h>  
	#include <sys/types.h>
	#include <stdint.h>
	#include <netinet/in.h>   
	#include <arpa/inet.h>   
	#include <fcntl.h>   
	#include <unistd.h>   
	#include <sys/time.h>
	#include <stdio.h>   
	#include <errno.h>   
	#include <netdb.h>
	#include <sys/ioctl.h>
	#include <sys/stat.h>
	#include <errno.h>
	#include <dirent.h>
	#include <libgen.h>
	
snippet main
	int main(int argc, const char *argv[])
	{
		${0:/* code */}
		return 0;
	}
snippet is
	#include <${1:iostream}>
snippet in
	#include "${1:`Filename("$1.hpp")`}"${2}
snippet de
	#define 
snippet ifdef
#ifdef ${1:FOO}
	${2:#define }
#endif
snippet #if
#if ${1:FOO}
	${2}
#endif
snippet if
	if(${1:/* condition */}) {
	}
snippet ife 
	if(${1:/* condition */}) {
		${2:/*code*/}
	}else {
		${3:/*else*/}
	}
snippet eif
	else if(${1:/* condition */}){
		${2:/*code*/}
	}
snippet el
	else{
		${1:/*code*/}
	}
snippet t
	${1:/* condition */} ? ${2:a} : ${3:b}
snippet dowhile
	do {
		${2:/* code */}
	} while (${1:/* condition */});
snippet while
	while (${1:/* condition */}) {
		${2:/* code */}
	}
snippet for
	for(${1:before}; ${2:conditon}; ${3:after}) {
	}
snippet loop
	for(uint32_t ${1:loop} = ${2:0}; ${3:$1}<${4:count}; ${5:++$1}) {
		${5:/* code */}
	}
snippet switch
	switch(${1:condition}){
		case ${2:value}:
			break;
		default:
			break;
	}
snippet case
	case ${1:value}:
	break;
snippet func
	${1:void} ${2:function_name}(${3}){
		${4:/* code */}
	}
snippet fund
	${1:void} ${2:function_name}(${3});
snippet td
	typedef ${1:int} ${2:MyCustomType};${3}
snippet st
	struct ${1:name} {
		${2:/* data */}
	};
snippet tds
	typedef struct ${1:name}{
		${2:/* data */}
	} ${3:$1_t};
snippet tde
	typedef enum {
		${1:/* data */}
	} ${2:foo};
snippet print
	printf("${1:%s}\n"${1/([^%]|%%)*(%.)?.*/(?2:, :\);)/}$2${1/([^%]|%%)*(%.)?.*/(?2:\);)/}
snippet fpr
	fprintf(${1:stderr}, "${2:%s}\n"${3});${4}
snippet un
	unsigned
snippet u64
	uint64_t
snippet u32
	uint32_t
snippet u16
	uint16_t
snippet u8
	uint8_t
snippet nu
	NULL
snippet todo
	/*TODO:${1:something}*/
